Contemporarily, usage, storage and transfer of data are increasing rapidly. Data requires storage space, and transmission bandwidth when communicated from one location to another. When images, videos, audio, genomic data, measurement data or any other data is stored or transmitted, it is desirable to compress such data as much as possible and with as high a quality as possible so as to enable cost and energy savings, together with a good user experience, namely a high quality and a low latency.
Data compression is well known, and enables less communication network capacity and less data storage capacity to be utilized when communicating and storing given data, respectively. Data compression can be lossless, when information is not lost as a result of data compression; alternatively, data compression can be lossy, when a degree of loss of information occurs as a result of data compression.
Many transform-based encoding methods are used with contemporary image, video, and audio compression codecs. Examples of transforms that code signals in the frequency domain include, but are not limited to, Discrete Cosine Transform (DCT; see reference [1]), Inverse Scattering Transform (1ST, see reference [2]), Discrete Sine Transform (DST; see reference [3]), Discrete Fourier Transform (DFT; see reference [4]), Fast Fourier Transform (FFT, see reference [5]), Wavelet (see reference [6]) and Hadamard transform (see reference [7]). Known transform-based encoding methods are often employed to encode data to generate corresponding encoded data in contemporary lossy image and video compression standards, for example in contemporarily known JPEG (see reference [8]), H.264 (see reference [9]), and HEVC (see reference [10]. Some transform-based encoding methods are also used in a contemporary encoding standard MP3 (see reference [11]) for providing audio data compression. Moreover, the DCT-based encoding method can be used effectively, due to its “high energy compaction property” to compress data efficiently.
There are also available codecs, for example a data block encoder as described in a granted UK patent document GB2503295B and a data block decoder as described in a published UK patent document GB2505169B, which are operable to use multiple mutually different coding methods, for example, such as multilevel coding, scale coding, slide coding, line coding, extrapolation, interpolation, coding via a reference to a database, DCT and so forth, when processing mutually different data blocks or data packets.
It is found in practice that mutually different methods are better suited for mutually different kinds of data blocks or data packets. In other words, one generic DCT method of encoding data is not enough alone to compete in an optimal manner against the other aforementioned coding methods. Similarly, with other methods, it is difficult to define which kind of quantization would create an optimal compression result for a given data block or data packet being processed.
It is known that DCT and other transforms are susceptible to being used with different quantization parameters or different quantization tables for achieving different quality or bit targets, when generating encoded data from input data. For example, in encoded data produced by a given H.264 encoder, a quantization parameter is used that directly determines a quantization strength for Discrete Cosine Transform (DCT) coefficients for a given block; moreover, for example, in encoded data produced by a JPEG encoder, there is a employed a quantization table which determines a quantization strength for each individual Discrete Cosine Transform (DCT) coefficient value. However, in known H.264 and JPEG standards, it is not known to generate encoded data containing DCT-transformed blocks that have a mutually same quality parameter, yet are coded using a different quantization strength selected to be used for a coded block coded pursuant to such standards.
Furthermore, the above-mentioned earlier known approaches do not include an option of inserting selection information about different coding methods (e.g. DCTQL and DCTQH), in cases where a same given quality parameter but a different quantization strength is to be used with a base method (e.g. DCT). In fact, the above-mentioned earlier known methods do not even insert a quality parameter into the encoded data, but only the quantization strengths used for the DCT transform coefficients of the blocks.
Different quantization parameters or different quantization tables (quantizations) are also known to be used for different colour channels (for example, the luminance channel Y and the chrominance channels U & V in the YUV colour space). Moreover, it is also known that other coding methods can also be used with different quantizations.
However, there are still no known coding solutions that provide an easy and cost-efficient mechanism to switch between mutually different quantizations block-by-block or packet-by-packet during encoding and decoding processes with multiple different coding methods. It is contemporarily possible to change quantization parameters for a given frame, channel, slice or region of interest (ROI). However, there are not presently supported, in respect of accuracy or flexibility, suitable arrangements that are needed to change coding methods and quantization. Typically, only one coding method is used, and the quantization parameter is rarely changed for that coding method. Thus, conventional coding solutions deliver information only for a few changes, and are not much concerned with how this information is delivered. Therefore, such approaches are too expensive (in data overhead, for example) to deliver the information associated when there are a lot of changes (for example, for each block or packet) in the coding methods and quantization levels.
In a published PCT patent application WO 2013/128010 A2 (Leannec Fabrice Le et. al.; “Method and devices for encoding a sequence of images into a scalable video bit-stream, and decoding a corresponding scalable video bit-stream”), there is described an encoding method which comprises encoding a base layer and an enhancement layer, including encoding an enhancement original INTRA image using intra-frame prediction only by: obtaining a residual image as a difference between the enhancement original INTRA image and a decoded corresponding encoded base image in the base layer, the residual image comprising blocks of pixels, each having a block type; transforming pixel values for a block into a set of coefficients each having a coefficient type, said block having a given block type; determining an initial coefficient encoding merit for each coefficient type; selecting coefficients based, for each coefficient, on the corresponding initial coefficient encoding merit and on a predetermined block merit; quantizing the selected coefficients into quantized symbols; and encoding the quantized symbols.